package com.springbootes.utils;

import com.springbootes.pojo.Content;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Component;

import java.lang.reflect.Array;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * @User 小菜鸡
 * @Data 2020/5/17
 */
@Component
public class HtmlParseUitl {

    public static List<Content> parseContent(String string) throws Exception {
        ArrayList<Content> lists = new ArrayList<>();
        String url="https://search.jd.com/Search?keyword="+string;
        //返回Document对象，就是浏览器操作html页面的对象，浏览器可以做的操作
        //使用这个对象也一样可以
        Document document = Jsoup.parse(new URL(url), 30 * 1000);
        //根据标签的id值（使用class的值也可以）获取Element对象,所有商品的对象
        Element element = document.getElementById("J_goodsList");
        //获取所有的li标签的对象
        Elements elments_li = element.getElementsByTag("li");
        //遍历所有的li标签对象
        for (Element element1 : elments_li) {
            //拿到li标签下的名为img的第一个子标签（eq(0)），并获取source-data-lazy-advertisement属性的值
            //这个img拿不到不知道咋回事
            String img=element1.getElementsByTag("img").eq(0).attr("source-data-lazy-advertisement");
            //拿到子标签为p-price的对象（第一个）
            String price=element1.getElementsByClass("p-price").eq(0).text();
            //拿到子标签为p-name的对象（第一个）
            String name=element1.getElementsByClass("p-name").eq(0).text();
            //封装为Content对象
            Content content = new Content(img, price, name);
            //添加进list集合中
            lists.add(content);
        }
        //返回lists集合
        return lists;
    }
}
